package com.touchfired.common.message.transfer;

import com.alibaba.fastjson.JSONObject;
import com.touchfired.common.message.BaseMessage;
import io.netty.channel.Channel;
import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;

/**
 * @Description 客户端消息发送者
 * @Author 幸佳俊
 */
public class MessageSender {

    public static void send(Channel channel, BaseMessage message) {
        channel.writeAndFlush(new TextWebSocketFrame(JSONObject.toJSONString(message)));
    }

//
//    /**
//     * 输出info信息
//     * @param channel 客户端channel
//     * @param message 消息
//     * @param content 消息内容
//     */
//    public static void info(Channel channel, BaseMessage message, String content) {
//        if (message != null) {
//            BaseMessage newMessage = copyMessage(message);
//            if (newMessage != null) {
//                newMessage.setStatus(MessageStatus.INFO.name()).setContent(content);
//                send(channel, newMessage);
//            }
//        }
//    }
//
//    /**
//     * 群输出info信息
//     * @param channels 客户端channel列表
//     * @param message 消息
//     * @param content 消息内容
//     */
//    public static void info(List<Channel> channels, BaseMessage message, String content) {
//        if (CollectionUtils.isNotEmpty(channels)) {
//            channels.forEach(c -> info(c, message, content));
//        }
//    }
//
//    /**
//     * 输出警告信息
//     * @param channel 客户端channel
//     * @param message 消息
//     * @param content 消息内容
//     */
//    public static void warn(Channel channel, BaseMessage message, String content) {
//        if (message != null) {
//            BaseMessage newMessage = copyMessage(message);
//            if (newMessage != null) {
//                newMessage.setStatus(MessageStatus.WARNING.name()).setContent(content);
//                send(channel, newMessage);
//            }
//        }
//    }
//
//    /**
//     * 输出错误信息
//     * @param channel 客户端channel
//     * @param message 消息
//     * @param content 消息内容
//     */
//    public static void error(Channel channel, BaseMessage message, String content) {
//        if (message != null) {
//            BaseMessage newMessage = copyMessage(message);
//            if (newMessage != null) {
//                newMessage.setStatus(MessageStatus.ERROR.name()).setContent(content);
//                send(channel, newMessage);
//            }
//        }
//    }
//
//    /**
//     * 拷贝消息
//     * @param message 原始消息
//     * @return 新消息对象
//     */
//    private static BaseMessage copyMessage(BaseMessage message) {
//        BaseMessage newMessage = null;
//        if (message != null) {
//            try {
//                newMessage = (BaseMessage) message.clone();
//            } catch (Exception e) {
//                e.printStackTrace();
//            }
//        }
//        return newMessage;
//    }
//
//    /**
//     * 发送数据到客户端
//     * @param channel 客户端channel
//     * @param message 消息
//     */
//    private static void send(Channel channel, BaseMessage message) {
//        channel.writeAndFlush(new TextWebSocketFrame(JSONObject.toJSONString(message)));
//    }
}
